Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters
نویسنده
چکیده
The paper [EG03b] deals with two methods, which are used to reduce mispredictions of indirect branches in virtual machine interpreters. Interpreters designed for efficiency can spent a lot of their execution time recovering from misprediction of indirect branches. Branch target buffers is a common method of reducing mispredictions, however the accuracy of this method in existing interpreters is only 2% 50%. The proposed methods of improving the branch prediction accuracy of BTBs for interpreters are: replicating virtual machine (VM) instructions and the use of superinstructions. The use of these techniques results in speedups by a factor of 3.17 over efficient threaded code interpreters and speedups by a factor of 1.3 over techniques relying on superinstructions only.
منابع مشابه
Optimizing Interpreters for Processors with Branch Target Buffers
Interpreters designed for efficiency execute a huge number of indirect branches and can spend more than half of the execution time in indirect branch mispredictions. Branch target buffers are the best widely available form of indirect branch prediction; they produce 50%–100% mispredictions for existing interpreters. In this paper we investigate three methods for improving the prediction accurac...
متن کاملThe Behavior of Eecient Virtual Machine Interpreters on Modern Architectures
Romer et al (ASPLOS 96) examined several interpreters and concluded that they behave much like general purpose integer programs such as gcc. We show that there is an important class of interpreters which behave very diierently. EEcient virtual machine interpreters perform a large number of indirect branches (3.2%{13% of all executed instructions in our benchmarks, taking up to 61%-79% of the cy...
متن کاملThe Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
Romer et al (ASPLOS 96) examined several interpreters and concluded that they behave much like general purpose integer programs such as gcc. We show that there is an important class of interpreters which behave very differently. Efficient virtual machine interpreters perform a large number of indirect branches (3.2%–13% of all executed instructions in our benchmarks, taking up to 61%-79% of the...
متن کاملRehashable BTB: An Adaptive Branch Target Buffer to Improve the Target Predictability of Java Code
Abstract. Java programs are increasing in popularity and prevalence on numerous platforms, including high-performance general-purpose processors. The dynamic characteristics of the Java runtime system present unique performance challenges for several aspects of microarchitecture design. In this work, we focus on the effects of indirect branches on branch target address prediction performance. R...
متن کاملThe Structure and Performance of Efficient Interpreters
Interpreters designed for high general-purpose performance typically perform a large number of indirect branches (3.2%–13% of all executed instructions in our benchmarks). These branches consume more than half of the run-time in a number of configurations we simulated. We evaluate how accurate various existing and proposed branch prediction schemes are on a number of interpreters, how the mispr...
متن کامل